////输出流
//ostream& operator<<(ostream& _cout, const bit::string& s)
//{
//	for (int i = 0; i < s._size; i++)
//	{
//		_cout << s._str[i];
//	}
//	return _cout;
//}

//strcat的bug
//#include <string>
//#include <iostream>
//using namespace std;
//int main()
//{
//	char str[] = "\0";
//	strcat(str, "avbsc");
//	cout << str << endl;
//
//	return 0;
//}

////输入流
//istream& operator>>(istream& _cin, bit::string& s)
//{
//	//先清理数据string中的数据
//	delete[] s._str;
//	char* str = new char[s._capacity];
//	s._str = str;
//	memcpy(s._str, "\0", 1);
//	s._size = 0;
//	//下面进行开始输入操作
//	char buff[128];
//	char ch = _cin.get();
//	int i = 0;
//	while (ch != ' ' && ch != '\n')
//	{
//		buff[i++] = ch;
//		if (i == 127)
//		{
//			buff[i] = '\0';
//			//在进行增添之前要先判断容量是否够容载
//			if (s._capacity < s._size + strlen(buff))
//			{
//				s._capacity += 2 * (s._size + strlen(buff));
//				char* str = new char[s._capacity];
//				memcpy(str, s._str, s._size + 1);
//				delete[] s._str;
//				s._str = str;
//			}
//			//连接操作，注意：这里不能用strcat，因为strcat本身有bug
//			int k = 0;
//			for (int j = s._size; j < s._size + strlen(buff); j++)
//			{
//				s._str[j] = buff[k++];
//			}
//			s._size += strlen(buff);
//			i = 0;
//		}
//		ch = _cin.get();
//	}
//	buff[i] = '\0';
//	//判断容量
//	if (s._capacity < s._size + strlen(buff))
//	{
//		s._capacity += 2 * (s._size + strlen(buff));
//		char* str = new char[s._capacity];
//		memcpy(str, s._str, s._size + 1);
//		delete[] s._str;
//		s._str = str;
//	}
//	//连接操作
//	int k = 0;
//	for (int j = s._size; j < s._size + strlen(buff); j++)
//	{
//		s._str[j] = buff[k++];
//	}
//	s._size += strlen(buff);
//	return _cin;
//}

//#include <iostream>
//#include <algorithm>
//using namespace std;
//struct Student {
//    int name;
//    long long  sum;
//};
////排序方式
//bool cmp(Student x, Student y)
//{
//    if (x.sum != y.sum)
//        return x.sum > y.sum;
//    else
//        return x.name < y.name;
//}
////记录开始和结束时间
//struct Time {
//    int h;
//    int m;
//    int s;
//    long long sum;
//} s, e;
//int main(void)
//{
//    int n, m, i, j, cnt, flag;
//    cin >> n >> m;
//    Student stu[1000];
//    //a数组用来记录学生是否看了抖音
//    int a[1000]{};
//    int name;
//    cnt = 0;
//    for (i = 0; i < m; i++) {
//        cin >> name;
//        flag = 0;
//        scanf("%d:%d:%d", &s.h, &s.m, &s.s);
//        s.sum = s.h * 60 * 60 + s.m * 60 + s.s;
//        scanf("%d:%d:%d", &e.h, &e.m, &e.s);
//        e.sum = e.h * 60 * 60 + e.m * 60 + e.s;
//        //从已记录中寻找，是否已有，否则创建一个新的
//        for (j = 0; j < cnt; j++) {
//            if (stu[j].name == name) {
//                flag = 1;
//                break;
//            }
//        }
//        if (flag) {
//            stu[j].sum += e.sum - s.sum;
//        }
//        else {
//            a[name] = 1;
//            stu[cnt].name = name;
//            stu[cnt].sum = e.sum - s.sum;
//            ++cnt;
//        }
//    }
//    //把没有看抖音的同学也记录上
//    for (i = 0; i < n; i++) {
//        if (!a[i]) {
//            stu[cnt].name = i;
//            cnt++;
//        }
//    }
//    sort(stu, stu + n, cmp);
//    //输出时记得带上0，否则格式不对
//    for (i = 0; i < n; i++) {
//        printf("%03d ", stu[i].name);
//        printf("%02d:%02d:%02d\n", stu[i].sum / 3600, stu[i].sum / 60 % 60, stu[i].sum % 60);
//    }
//    return 0;
//}
